#ifndef ALARM_TYPE_DEFINE_H
#define ALARM_TYPE_DEFINE_H

#include <QtCore>

//告警等级
#define ALARM_LEVEL3 3 //三级告警(从低到高 预警/告警/保护)
#define ALARM_LEVEL4 4 //四级告警(从低到高 提示/预警/告警/保护)

//tblAlarmParam表中的type值类型
#define PARAM_TYPE_WARN 10          //预警
#define PARAM_TYPE_WARN_DIFF 11     //预警回差
#define PARAM_TYPE_ALARM 20         //告警
#define PARAM_TYPE_ALARM_DIFF 21    //告警回差
#define PARAM_TYPE_PROT 30          //保护
#define PARAM_TYPE_PROT_DIFF 31     //保护回差
#define PARAM_TYPE_TIP 40           //提示
#define PARAM_TYPE_TIP_DIFF 41      //提示回差

// Alarm
#define ALARM_TYPE_UNKOWN                                 0      // 未知
//预警定义
#define ALARM_TYPE_BANK_VOL_UP_LIMIT_WARN                 1      // 组端电压上限预警
#define ALARM_TYPE_BANK_VOL_DOWN_LIMIT_WARN               2      // 组端电压下限预警
#define ALARM_TYPE_CHG_CUR_UP_LIMIT_WARN                  3      // 充电电流上限预警
#define ALARM_TYPE_DCHG_CUR_UP_LIMIT_WARN                 4      // 放电电流上限预警
#define ALARM_TYPE_SGL_VOL_UP_LIMIT_WARN                  5      // 单体电压上限预警
#define ALARM_TYPE_SGL_VOL_DOWN_LIMIT_WARN                6      // 单体电压下限预警
#define ALARM_TYPE_CHG_SGL_TEMP_UP_LIMIT_WARN             7      // 充电温度上限预警
#define ALARM_TYPE_CHG_SGL_TEMP_DOWN_LIMIT_WARN           8      // 充电温度下限预警
#define ALARM_TYPE_DCHG_SGL_TEMP_UP_LIMIT_WARN            9      // 放电温度上限预警
#define ALARM_TYPE_DCHG_SGL_TEMP_DOWN_LIMIT_WARN          10     // 放电温度下限预警
#define ALARM_TYPE_SGL_TEMP_UP_LIMIT_WARN                 11     // 单体温度上限预警
#define ALARM_TYPE_SGL_TEMP_DOWN_LIMIT_WARN               12     // 单体温度下限预警
#define ALARM_TYPE_ENV_TEMP_UP_LIMIT_WARN                 13     // 环境温度上限预警
#define ALARM_TYPE_ENV_TEMP_DOWN_LIMIT_WARN               14     // 环境温度下限预警
#define ALARM_TYPE_POWER_LINE_TEMP_UP_LIMIT_WARN          15     // 动力线温度上限预警
#define ALARM_TYPE_BANK_SOC_UP_LIMIT_WARN                 16     // 组端SOC上限预警
#define ALARM_TYPE_BANK_SOC_DOWN_LIMIT_WARN               17     // 组端SOC下限预警
#define ALARM_TYPE_POS_RES_DOWN_LIMIT_WARN                18     // 正极绝缘内阻下限预警
#define ALARM_TYPE_NEG_RES_DOWN_LIMIT_WARN                19     // 负极绝缘内阻下限预警
#define ALARM_TYPE_PACK_VOL_DIFF_UP_LIMIT_WARN            20     // 箱压差上限预警
#define ALARM_TYPE_PACK_TEMP_DIFF_UP_LIMIT_WARN           21     // 箱温差上限预警
#define ALARM_TYPE_BANK_VOL_DIFF_UP_LIMIT_WARN            22     // 组压采集差上限预警
#define ALARM_TYPE_PACK_VOL_UP_LIMIT_WARN                 23     // 箱电压上限预警
#define ALARM_TYPE_PACK_VOL_DOWN_LIMIT_WARN               24     // 箱电压下限预警
#define ALARM_TYPE_CELL_VOL_DIFF_UP_LIMIT_WARN            25     // 组内单体电压极差上限预警
#define ALARM_TYPE_CELL_TEMP_DIFF_UP_LIMIT_WARN           26     // 组内单体温度极差上限预警
#define ALARM_TYPE_MODULE_VOL_DIFF_UP_LIMIT_WARN          27     // 组内模块电压极差上限预警
#define ALARM_TYPE_HV_POWER_LINE_TEMP_UP_LIMIT_WARN       28     // 高压动力线温度上限预警
#define ALARM_TYPE_BANK_CUR_ABNORMAL_WARN                 29     // 组电流异常预警
#define ALARM_TYPE_CELL_VOL_SUDCHG_WARN                   30     // 单体电压突变预警

#define ALARM_TYPE_RESERVE1_WARN                          45     // 保留1预警
#define ALARM_TYPE_RESERVE2_WARN                          46     // 保留2预警
#define ALARM_TYPE_RESERVE3_WARN                          47     // 保留3预警
#define ALARM_TYPE_RESERVE4_WARN                          48     // 保留4预警
#define ALARM_TYPE_RESERVE5_WARN                          49     // 保留5预警
#define ALARM_TYPE_RESERVE6_WARN                          50     // 保留6预警

//告警定义
#define ALARM_TYPE_BANK_VOL_UP_LIMIT_ALARM                51      // 组端电压上限告警
#define ALARM_TYPE_BANK_VOL_DOWN_LIMIT_ALARM              52      // 组端电压下限告警
#define ALARM_TYPE_CHG_CUR_UP_LIMIT_ALARM                 53      // 充电电流上限告警
#define ALARM_TYPE_DCHG_CUR_UP_LIMIT_ALARM                54      // 放电电流上限告警
#define ALARM_TYPE_SGL_VOL_UP_LIMIT_ALARM                 55      // 单体电压上限告警
#define ALARM_TYPE_SGL_VOL_DOWN_LIMIT_ALARM               56      // 单体电压下限告警
#define ALARM_TYPE_CHG_SGL_TEMP_UP_LIMIT_ALARM            57      // 充电温度上限告警
#define ALARM_TYPE_CHG_SGL_TEMP_DOWN_LIMIT_ALARM          58      // 充电温度下限告警
#define ALARM_TYPE_DCHG_SGL_TEMP_UP_LIMIT_ALARM           59      // 放电温度上限告警
#define ALARM_TYPE_DCHG_SGL_TEMP_DOWN_LIMIT_ALARM         60      // 放电温度下限告警
#define ALARM_TYPE_SGL_TEMP_UP_LIMIT_ALARM                61      // 单体温度上限告警
#define ALARM_TYPE_SGL_TEMP_DOWN_LIMIT_ALARM              62      // 单体温度下限告警
#define ALARM_TYPE_ENV_TEMP_UP_LIMIT_ALARM                63      // 环境温度上限告警
#define ALARM_TYPE_ENV_TEMP_DOWN_LIMIT_ALARM              64      // 环境温度下限告警
#define ALARM_TYPE_POWER_LINE_TEMP_UP_LIMIT_ALARM         65      // 动力线温度上限告警
#define ALARM_TYPE_BANK_SOC_UP_LIMIT_ALARM                66      // 组端SOC上限告警
#define ALARM_TYPE_BANK_SOC_DOWN_LIMIT_ALARM              67      // 组端SOC下限告警
#define ALARM_TYPE_POS_RES_DOWN_LIMIT_ALARM               68      // 正极绝缘内阻下限告警
#define ALARM_TYPE_NEG_RES_DOWN_LIMIT_ALARM               69      // 负极绝缘内阻下限告警
#define ALARM_TYPE_PACK_VOL_DIFF_UP_LIMIT_ALARM           70      // 箱压差上限告警
#define ALARM_TYPE_PACK_TEMP_DIFF_UP_LIMIT_ALARM          71      // 箱温差上限告警
#define ALARM_TYPE_BANK_VOL_DIFF_UP_LIMIT_ALARM           72      // 组压采集差上限告警
#define ALARM_TYPE_PACK_VOL_UP_LIMIT_ALARM                73      // 箱电压上限告警
#define ALARM_TYPE_PACK_VOL_DOWN_LIMIT_ALARM              74      // 箱电压下限告警
#define ALARM_TYPE_CELL_VOL_DIFF_UP_LIMIT_ALARM           75      // 组内单体电压极差上限告警
#define ALARM_TYPE_CELL_TEMP_DIFF_UP_LIMIT_ALARM          76      // 组内单体温度极差上限告警
#define ALARM_TYPE_MODULE_VOL_DIFF_UP_LIMIT_ALARM         77      // 组内模块电压极差上限告警
#define ALARM_TYPE_HV_POWER_LINE_TEMP_UP_LIMIT_ALARM      78      // 高压动力线温度上限告警
#define ALARM_TYPE_BANK_CUR_ABNORMAL_ALARM                79      // 组电流异常告警
#define ALARM_TYPE_CELL_VOL_SUDCHG_ALARM                  80      // 单体电压突变告警

#define ALARM_TYPE_RESERVE1_ALARM                         144      // 保留1告警
#define ALARM_TYPE_RESERVE2_ALARM                         145      // 保留2告警
#define ALARM_TYPE_RESERVE3_ALARM                         146      // 保留3告警
#define ALARM_TYPE_RESERVE4_ALARM                         147      // 保留4告警
#define ALARM_TYPE_RESERVE5_ALARM                         148      // 保留5告警
#define ALARM_TYPE_RESERVE6_ALARM                         149      // 保留6告警

//故障定义
#define ALARM_TYPE_SGL_TEMP_RISE_ALARM                    150     // 单体温升报警
#define ALARM_TYPE_POWER_LINE_TEMP_RISE_ALARM             151     // 动力线温升报警
#define ALARM_TYPE_BMU_BCMU_COM_FAULT                     152     // BMU与BCMU通讯故障
#define ALARM_TYPE_BCMU_BA_COM_FAULT                      153     // BCMU与BA通讯故障
#define ALARM_TYPE_SGL_VOL_WIRE_FAULT                     154     // 单体电压采集线故障
#define ALARM_TYPE_BANK_VOL_WIRE_FAULT                    155     // 总压采集线故障
#define ALARM_TYPE_CUR_WIRE_FAULT                         156     // 电流采集线故障
#define ALARM_TYPE_TEMP_WIRE_BREAK                        157     // 温度采集断线
#define ALARM_TYPE_TEMP_SHORT_CIRCUIT                     158     // 温度采集短路
#define ALARM_TYPE_SGL_VOL_INVALID                        159     // 单体电压无效
#define ALARM_TYPE_SGL_TEMP_INVALID                       160     // 单体温度无效
#define ALARM_TYPE_BANK_VOL_INVALID                       161     // 组端电压无效
#define ALARM_TYPE_ENV_TEMP_INVALID                       162     // 环境温度无效
#define ALARM_TYPE_CUR_ABNORMITY                          163     // 组电流异常
#define ALARM_TYPE_POS_RES_INVALID                        164     // 正极绝缘内阻无效
#define ALARM_TYPE_NEG_RES_INVALID                        165     // 负极绝缘内阻无效
#define ALARM_TYPE_POS_ADHE_FAULT                         166     // 总正接触器粘连故障
#define ALARM_TYPE_NEG_ADHE_FAULT                         167     // 总负接触器粘连故障
#define ALARM_TYPE_PRE_ADHE_FAULT                         168     // 预充接触器粘连故障
#define ALARM_TYPE_PWLN_TEMP_INVALID                      169     // 动力线温度无效
#define ALARM_TYPE_HALL_COM_FAULT                         170     // 霍尔通讯故障
#define ALARM_TYPE_HALL_DAC_FAULT                         171     // 霍尔采集故障
#define ALARM_TYPE_POS_NOT_CLOSE_FAULT                    172     // 总正接触器无法闭合故障
#define ALARM_TYPE_NEG_NOT_CLOSE_FAULT                    173     // 总负接触器无法闭合故障
#define ALARM_TYPE_PRE_NOT_CLOSE_FAULT                    174     // 预充接触器无法闭合故障
#define ALARM_TYPE_PRE_CHG_FAULT                          175     // 预充失败
#define ALARM_TYPE_BANK_VOL_DIFF_FAULT                    176     // 组压采集差故障
#define ALARM_TYPE_POS_FUSE_BLOW                          177     // 正极熔断器熔断
#define ALARM_TYPE_NEG_FUSE_BLOW                          178     // 负极熔断器熔断
#define ALARM_TYPE_IN_RES_ABNORMAL_ALARM                  179     // 内阻异常报警
#define ALARM_TYPE_PRECHARGE_FAILED                       180     // 预充异常报警

//保护定义
#define ALARM_TYPE_BANK_VOL_UP_LIMIT_PROT                 201     // 组端电压上限保护
#define ALARM_TYPE_BANK_VOL_DOWN_LIMIT_PROT               202     // 组端电压下限保护
#define ALARM_TYPE_CHG_CUR_UP_LIMIT_PROT                  203     // 充电电流上限保护
#define ALARM_TYPE_DCHG_CUR_UP_LIMIT_PROT                 204     // 放电电流上限保护
#define ALARM_TYPE_SGL_VOL_UP_LIMIT_PROT                  205     // 单体电压上限保护
#define ALARM_TYPE_SGL_VOL_DOWN_LIMIT_PROT                206     // 单体电压下限保护
#define ALARM_TYPE_CHG_SGL_TEMP_UP_LIMIT_PROT             207     // 充电温度上限保护
#define ALARM_TYPE_CHG_SGL_TEMP_DOWN_LIMIT_PROT           208     // 充电温度下限保护
#define ALARM_TYPE_DCHG_SGL_TEMP_UP_LIMIT_PROT            209     // 放电温度上限保护
#define ALARM_TYPE_DCHG_SGL_TEMP_DOWN_LIMIT_PROT          210     // 放电温度下限保护
#define ALARM_TYPE_SGL_TEMP_UP_LIMIT_PROT                 211     // 单体温度上限保护
#define ALARM_TYPE_SGL_TEMP_DOWN_LIMIT_PROT               212     // 单体温度下限保护
#define ALARM_TYPE_ENV_TEMP_UP_LIMIT_PROT                 213     // 环境温度上限保护
#define ALARM_TYPE_ENV_TEMP_DOWN_LIMIT_PROT               214     // 环境温度下限保护
#define ALARM_TYPE_POWER_LINE_TEMP_UP_LIMIT_PROT          215     // 动力线温度上限保护
#define ALARM_TYPE_BANK_SOC_UP_LIMIT_PROT                 216     // 组端SOC上限保护
#define ALARM_TYPE_BANK_SOC_DOWN_LIMIT_PROT               217     // 组端SOC下限保护
#define ALARM_TYPE_POS_RES_DOWN_LIMIT_PROT                218     // 正极绝缘内阻下限保护
#define ALARM_TYPE_NEG_RES_DOWN_LIMIT_PROT                219     // 负极绝缘内阻下限保护
#define ALARM_TYPE_PACK_VOL_DIFF_UP_LIMIT_PROT            220     // 箱压差上限保护
#define ALARM_TYPE_PACK_TEMP_DIFF_UP_LIMIT_PROT           221     // 箱温差上限保护
#define ALARM_TYPE_BANK_VOL_DIFF_UP_LIMIT_PROT            222     // 组压采集差上限保护
#define ALARM_TYPE_PACK_VOL_UP_LIMIT_PROT                 223     // 箱电压上限保护
#define ALARM_TYPE_PACK_VOL_DOWN_LIMIT_PROT               224     // 箱电压下限保护
#define ALARM_TYPE_CELL_VOL_DIFF_UP_LIMIT_PROT            225     // 组内单体电压极差上限保护
#define ALARM_TYPE_CELL_TEMP_DIFF_UP_LIMIT_PROT           226     // 组内单体温度极差上限保护
#define ALARM_TYPE_MODULE_VOL_DIFF_UP_LIMIT_PROT          227     // 组内模块电压极差上限保护
#define ALARM_TYPE_HV_POWER_LINE_TEMP_UP_LIMIT_PROT       228     // 高压动力线温度上限保护
#define ALARM_TYPE_BANK_CUR_ABNORMAL_PROT                 229     // 组电流异常保护
#define ALARM_TYPE_CELL_VOL_SUDCHG_PROT                   230     // 单体电压突变

#define ALARM_TYPE_RESERVE1_PROT                          246     // 保留1保护
#define ALARM_TYPE_RESERVE2_PROT                          247     // 保留2保护
#define ALARM_TYPE_RESERVE3_PROT                          248     // 保留3保护
#define ALARM_TYPE_RESERVE4_PROT                          249     // 保留4保护
#define ALARM_TYPE_RESERVE5_PROT                          250     // 保留5保护
#define ALARM_TYPE_RESERVE6_PROT                          251     // 保留6保护

#define ALARM_TYPE_EX_IO_MODU_CONN_FAULT                  252     // 扩展IO模块通讯故障
#define ALARM_TYPE_EMER_STOP                              253     // 紧急停机
#define ALARM_TYPE_FIRE_ALARM                             254     // 消防报警
#define ALARM_TYPE_WATER_ALARM                            255     // 水浸报警

//提示定义
#define ALARM_TYPE_BANK_VOL_UP_LIMIT_TIP                  301      // 组端电压上限提示
#define ALARM_TYPE_BANK_VOL_DOWN_LIMIT_TIP                302      // 组端电压下限提示
#define ALARM_TYPE_CHG_CUR_UP_LIMIT_TIP                   303      // 充电电流上限提示
#define ALARM_TYPE_DCHG_CUR_UP_LIMIT_TIP                  304      // 放电电流上限提示
#define ALARM_TYPE_SGL_VOL_UP_LIMIT_TIP                   305      // 单体电压上限提示
#define ALARM_TYPE_SGL_VOL_DOWN_LIMIT_TIP                 306      // 单体电压下限提示
#define ALARM_TYPE_CHG_SGL_TEMP_UP_LIMIT_TIP              307      // 充电温度上限提示
#define ALARM_TYPE_CHG_SGL_TEMP_DOWN_LIMIT_TIP            308      // 充电温度下限提示
#define ALARM_TYPE_DCHG_SGL_TEMP_UP_LIMIT_TIP             309      // 放电温度上限提示
#define ALARM_TYPE_DCHG_SGL_TEMP_DOWN_LIMIT_TIP           310     // 放电温度下限提示
#define ALARM_TYPE_SGL_TEMP_UP_LIMIT_TIP                  311     // 单体温度上限提示
#define ALARM_TYPE_SGL_TEMP_DOWN_LIMIT_TIP                312     // 单体温度下限提示
#define ALARM_TYPE_ENV_TEMP_UP_LIMIT_TIP                  313     // 环境温度上限提示
#define ALARM_TYPE_ENV_TEMP_DOWN_LIMIT_TIP                314     // 环境温度下限提示
#define ALARM_TYPE_POWER_LINE_TEMP_UP_LIMIT_TIP           315     // 动力线温度上限提示
#define ALARM_TYPE_BANK_SOC_UP_LIMIT_TIP                  316     // 组端SOC上限提示
#define ALARM_TYPE_BANK_SOC_DOWN_LIMIT_TIP                317     // 组端SOC下限提示
#define ALARM_TYPE_POS_RES_DOWN_LIMIT_TIP                 318     // 正极绝缘内阻下限提示
#define ALARM_TYPE_NEG_RES_DOWN_LIMIT_TIP                 319     // 负极绝缘内阻下限提示
#define ALARM_TYPE_PACK_VOL_DIFF_UP_LIMIT_TIP             320     // 箱压差上限提示
#define ALARM_TYPE_PACK_TEMP_DIFF_UP_LIMIT_TIP            321     // 箱温差上限提示
#define ALARM_TYPE_BANK_VOL_DIFF_UP_LIMIT_TIP             322     // 组压采集差上限提示
#define ALARM_TYPE_PACK_VOL_UP_LIMIT_TIP                  323     // 箱电压上限提示
#define ALARM_TYPE_PACK_VOL_DOWN_LIMIT_TIP                324     // 箱电压下限提示
#define ALARM_TYPE_RESERVE1_TIP                           325     // 保留1提示
#define ALARM_TYPE_RESERVE2_TIP                           326     // 保留2提示
#define ALARM_TYPE_RESERVE3_TIP                           327     // 保留3提示
#define ALARM_TYPE_RESERVE4_TIP                           328     // 保留4提示
#define ALARM_TYPE_RESERVE5_TIP                           329     // 保留5提示
#define ALARM_TYPE_RESERVE6_TIP                           330     // 保留6提示

#endif //ALARM_TYPE_DEFINE_H
